class DGSLCCConfigParser {
    constructor(configData) {
        // 初始化配置数据
        this.config = configData || {};
        this.baseUrl = this.config.baseUrl || '';
        this.menuItems = this.config.menuItems || [];
    }

    // 获取基础URL
    getBaseUrl() {
        return this.baseUrl;
    }

    // 获取所有菜单项
    getMenuItems() {
        return this.menuItems;
    }

    // 根据ID查找菜单项
    findMenuItemById(id) {
        return this.menuItems.find(item => item.ID === id);
    }

    // 根据类型过滤菜单项
    filterMenuItemsByType(type) {
        return this.menuItems.filter(item => item.type === type);
    }

    // 获取已加载的菜单项
    getLoadedMenuItems() {
        return this.menuItems.filter(item => item.load);
    }

    // 添加新菜单项
    addMenuItem(item) {
        this.menuItems.push(item);
        return this.menuItems;
    }

    // 更新菜单项
    updateMenuItem(id, updatedItem) {
        const index = this.menuItems.findIndex(item => item.ID === id);
        if (index !== -1) {
            this.menuItems[index] = { ...this.menuItems[index], ...updatedItem };
            return true;
        }
        return false;
    }

    // 删除菜单项
    deleteMenuItem(id) {
        const initialLength = this.menuItems.length;
        this.menuItems = this.menuItems.filter(item => item.ID !== id);
        return initialLength !== this.menuItems.length;
    }

    // 将配置导出为JSON字符串
    toJson(indent = 2) {
        return JSON.stringify({
            baseUrl: this.baseUrl,
            menuItems: this.menuItems
        }, null, indent);
    }
}

// 使用示例
// const configData = {
//     "baseUrl": "http://127.0.0.1:5500",
//     "menuItems": [
//         {
//             "ID": "1",
//             "name": "东半区",
//             "label": "东半区",
//             "path": "/example/data/3dGS/xx园区-202505261447/xx园区东半区/meta.lcc",
//             "type": "3dgs",
//             "load": true
//         },
//         {
//             "ID": "2",
//             "name": "中吴厅",
//             "label": "中吴厅",
//             "path": "/example/data/3dGS/xx园区-202505261447/中吴厅/meta.lcc",
//             "type": "3dgs",
//             "load": false
//         }
//     ]
// };

// 创建配置解析器实例
// const parser = new ConfigParser(configData);

// // 使用示例方法
// console.log("Base URL:", parser.getBaseUrl());
// console.log("Loaded Items:", parser.getLoadedItems());
//
// // 更新菜单项
// parser.updateMenuItem("2", { load: true });
// console.log("Updated Menu Items:", parser.getMenuItems());
//
// // 导出配置
// console.log(parser.toJson());

// async function fetch3DGSLCC(jsonUrl){
//     try {
//         const response = await fetch(jsonUrl);
//         if (!response.ok) {
//             throw new Error(`HTTP error! status: ${response.status}`);
//         }
//         return await response.json();
//     }catch (error) {
//         console.error("获取URL数据时出错:", error);
//         return {};
//     }
// }